import 'dart:async';

class EventBus {
  // 单例模式
  static final EventBus _instance = EventBus._internal();

  factory EventBus() => _instance;

  EventBus._internal();

  // 事件流控制器
  final StreamController _streamController = StreamController.broadcast();

  // 发布事件
  void fire(dynamic event) {
    _streamController.add(event);
  }

  // 订阅事件
  Stream get on => _streamController.stream;

  // 关闭事件总线
  void dispose() {
    _streamController.close();
  }
}

// 创建全局实例
final eventBus = EventBus();

// 电表事件类
class ElectricityMeterEvent {
  final String type;
  final Map data;

  ElectricityMeterEvent(this.type, this.data);
}
